/*
 * @lc app=leetcode.cn id=48 lang=javascript
 *
 * [48] 旋转图像
 */

// @lc code=start
/**
 * @param {number[][]} matrix
 * @return {void} Do not return anything, modify matrix in-place instead.
 */
// 原地旋转
var rotate = function(matrix) {
  const n = matrix.length
  for (let y = 0; y < Math.floor(n / 2); y++) {
    for (let x = 0; x < Math.floor((n + 1) / 2); x++) {
      let temp = matrix[y][x]
      matrix[y][x] = matrix[n - x - 1][y]
      matrix[n - x - 1][y] = matrix[n - y - 1][n - x - 1]
      matrix[n - y - 1][n - x - 1] = matrix[x][n - y - 1]
      matrix[x][n - y - 1] = temp
    }
  }
  return matrix
}
// @lc code=end
// 用翻转代替旋转
// 上下翻转，主对角线翻转
// var rotate = function(matrix) {
//   let n = matrix.length
//   // 上下翻转
//   for (let y = 0; y < Math.floor(n / 2); y++){
//     for (let x = 0; x < n; x++) {
//       [matrix[y][x], matrix[n - y - 1][x]] = [matrix[n - y - 1][x], matrix[y][x]]
//     }
//   }  
//   // 主对角线反转
//   for (let x = 0; x < n; x++) {
//     for (let y = 0; y < x; y++) {
//       [matrix[y][x], matrix[x][y]] = [matrix[x][y], matrix[y][x]]
//     }
//   }
//   return matrix
// };